package Controller;

public class Cnpj {

   public boolean validaCnpj(String cnpj) {
      if (!cnpj.substring(0, 1).equals("")) {
         try {
            cnpj = cnpj.replace('.', ' ');//onde há ponto coloca espaço
            cnpj = cnpj.replace('/', ' ');//onde há barra coloca espaço
            cnpj = cnpj.replace('-', ' ');//onde há traço coloca espaço
            cnpj = cnpj.replaceAll(" ", "");//retira espaço
            int soma = 0, aux, dig;
            String cnpj_calc = cnpj.substring(0, 12);

            if (cnpj.length() != 14) {
               return false;
            }
            char[] chr_cnpj = cnpj.toCharArray();
            /* Primeira parte */
            for (int i = 0; i < 4; i++) {
               if (chr_cnpj[i] - 48 >= 0 && chr_cnpj[i] - 48 <= 9) {
                  soma += (chr_cnpj[i] - 48) * (6 - (i + 1));
               }
            }
            for (int i = 0; i < 8; i++) {
               if (chr_cnpj[i + 4] - 48 >= 0 && chr_cnpj[i + 4] - 48 <= 9) {
                  soma += (chr_cnpj[i + 4] - 48) * (10 - (i + 1));
               }
            }
            dig = 11 - (soma % 11);
            cnpj_calc += (dig == 10 || dig == 11) ? "0" : Integer.toString(dig);
            /* Segunda parte */
            soma = 0;
            for (int i = 0; i < 5; i++) {
               if (chr_cnpj[i] - 48 >= 0 && chr_cnpj[i] - 48 <= 9) {
                  soma += (chr_cnpj[i] - 48) * (7 - (i + 1));
               }
            }
            for (int i = 0; i < 8; i++) {
               if (chr_cnpj[i + 5] - 48 >= 0 && chr_cnpj[i + 5] - 48 <= 9) {
                  soma += (chr_cnpj[i + 5] - 48) * (10 - (i + 1));
               }
            }
            dig = 11 - (soma % 11);
            cnpj_calc += (dig == 10 || dig == 11) ? "0" : Integer.toString(dig);
            return cnpj.equals(cnpj_calc);
         } catch (Exception e) {
            //e.printStackTrace();
            return false;
         }
      } else {
         return false;
      }
   }

   public String retiraCaracter(String frase) {
      String resposta = "";

      for (int i = 0; i < frase.length(); i++) {
         if ((frase.charAt(i) != '.') && (frase.charAt(i) != '-')) {
            resposta += frase.charAt(i);
         }
      }
      return resposta;
   }
}
